home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / ip / nfs / nfswatch4.0 / RCS / xdr.c,v < prev    next >
Encoding:
Text File  |  1993-03-01  |  7.5 KB  |  433 lines

  1. head    4.0;
  2. access;
  3. symbols;
  4. locks; strict;
  5. comment    @ * @;
  6.  
  7.  
  8. 4.0
  9. date    93.03.01.19.59.00;    author davy;    state Exp;
  10. branches;
  11. next    3.4;
  12.  
  13. 3.4
  14. date    93.01.16.19.08.59;    author davy;    state Exp;
  15. branches;
  16. next    3.3;
  17.  
  18. 3.3
  19. date    93.01.15.19.33.39;    author davy;    state Exp;
  20. branches;
  21. next    3.2;
  22.  
  23. 3.2
  24. date    93.01.15.15.43.36;    author davy;    state Exp;
  25. branches;
  26. next    3.1;
  27.  
  28. 3.1
  29. date    93.01.13.20.18.17;    author davy;    state Exp;
  30. branches;
  31. next    3.0;
  32.  
  33. 3.0
  34. date    91.01.23.08.23.39;    author davy;    state Exp;
  35. branches;
  36. next    1.2;
  37.  
  38. 1.2
  39. date    90.08.17.15.47.53;    author davy;    state Exp;
  40. branches;
  41. next    1.1;
  42.  
  43. 1.1
  44. date    88.11.29.11.21.08;    author davy;    state Released;
  45. branches;
  46. next    ;
  47.  
  48.  
  49. desc
  50. @NFSWATCH - monitor Network File System traffic on the network.
  51. @
  52.  
  53.  
  54. 4.0
  55. log
  56. @NFSWATCH Version 4.0.
  57. @
  58. text
  59. @#ifndef lint
  60. static char *RCSid = "$Header: /home/harbor/davy/system/nfswatch/RCS/xdr.c,v 3.4 1993/01/16 19:08:59 davy Exp davy $";
  61. #endif
  62.  
  63. #include "os.h"
  64.  
  65. /*
  66.  * xdr.c - XDR routines for decoding NFS packets.
  67.  *
  68.  * David A. Curry                Jeffrey C. Mogul
  69.  * Purdue University                Digital Equipment Corporation
  70.  * Engineering Computer Network            Western Research Laboratory
  71.  * 1285 Electrical Engineering Building        250 University Avenue
  72.  * West Lafayette, IN 47907-1285        Palo Alto, CA 94301
  73.  * davy@@ecn.purdue.edu                mogul@@decwrl.dec.com
  74.  *
  75.  * $Log: xdr.c,v $
  76.  * Revision 3.4  1993/01/16  19:08:59  davy
  77.  * Corrected Jeff's address.
  78.  *
  79.  * Revision 3.3  1993/01/15  19:33:39  davy
  80.  * Miscellaneous cleanups.
  81.  *
  82.  * Revision 3.2  1993/01/15  15:43:36  davy
  83.  * Assorted changes for porting to Solaris 2.x/SVR4.
  84.  *
  85.  * Revision 3.1  1993/01/13  20:18:17  davy
  86.  * Put in OS-specific define scheme, and merged in Tim Hudson's code for
  87.  * SGI systems (as yet untested).
  88.  *
  89.  * Revision 3.0  1991/01/23  08:23:39  davy
  90.  * NFSWATCH Version 3.0.
  91.  *
  92.  * Revision 1.2  90/08/17  15:47:53  davy
  93.  * NFSWATCH Version 2.0.
  94.  * 
  95.  * Revision 1.1  88/11/29  11:21:08  davy
  96.  * NFSWATCH Release 1.0
  97.  * 
  98.  */
  99. #include <sys/param.h>
  100. #include <netinet/in.h>
  101. #ifdef SVR4
  102. #include <sys/tiuser.h>
  103. #endif
  104. #include <rpc/types.h>
  105. #include <rpc/xdr.h>
  106. #include <rpc/auth.h>
  107. #include <rpc/clnt.h>
  108. #include <rpc/rpc_msg.h>
  109. #include <rpc/svc.h>
  110. #include <errno.h>
  111. #include <stdio.h>
  112.  
  113. #define NFSSERVER    1
  114.  
  115. #ifdef sun
  116. #include <sys/vfs.h>
  117. #include <nfs/nfs.h>
  118. #endif
  119. #ifdef ultrix
  120. #include <sys/types.h>
  121. #include <sys/time.h>
  122. #include <nfs/nfs.h>
  123. #endif
  124. #ifdef sgi
  125. #include <sys/time.h>
  126. #include "sgi.map.h"
  127. #endif
  128.  
  129. #include "nfswatch.h"
  130.  
  131. bool_t
  132. xdr_creatargs(xdrs, argp)
  133. register struct nfscreatargs *argp;
  134. register XDR *xdrs;
  135. {
  136.     if (xdr_diropargs(xdrs, &argp->ca_da) &&
  137.         xdr_sattr(xdrs, &argp->ca_sa))
  138.         return(TRUE);
  139.  
  140.     return(FALSE);
  141. }
  142.  
  143. bool_t
  144. xdr_diropargs(xdrs, argp)
  145. register struct nfsdiropargs *argp;
  146. register XDR *xdrs;
  147. {
  148.     if (xdr_fhandle(xdrs, &argp->da_fhandle) &&
  149.         xdr_string(xdrs, &argp->da_name, NFS_MAXNAMLEN)) {
  150.         free(argp->da_name);
  151.         return(TRUE);
  152.     }
  153.  
  154.     return(FALSE);
  155. }
  156.  
  157. bool_t
  158. xdr_fhandle(xdrs, argp)
  159. fhandle_t *argp;
  160. register XDR *xdrs;
  161. {
  162.     if (xdr_opaque(xdrs, (caddr_t) argp, NFS_FHSIZE))
  163.         return(TRUE);
  164.  
  165.     return(FALSE);
  166. }
  167.  
  168. bool_t
  169. xdr_linkargs(xdrs, argp)
  170. register struct nfslinkargs *argp;
  171. register XDR *xdrs;
  172. {
  173.     if (xdr_fhandle(xdrs, &argp->la_from) &&
  174.         xdr_diropargs(xdrs, &argp->la_to))
  175.         return(TRUE);
  176.  
  177.     return(FALSE);
  178. }
  179.  
  180. bool_t
  181. xdr_rddirargs(xdrs, argp)
  182. register struct nfsrddirargs *argp;
  183. register XDR *xdrs;
  184. {
  185.     if (xdr_fhandle(xdrs, &argp->rda_fh) &&
  186.         xdr_u_long(xdrs, &argp->rda_offset) &&
  187.         xdr_u_long(xdrs, &argp->rda_count))
  188.         return(TRUE);
  189.  
  190.     return(FALSE);
  191. }
  192.  
  193. bool_t
  194. xdr_readargs(xdrs, argp)
  195. register struct nfsreadargs *argp;
  196. register XDR *xdrs;
  197. {
  198.     if (xdr_fhandle(xdrs, &argp->ra_fhandle) &&
  199.         xdr_long(xdrs, (long *) &argp->ra_offset) &&
  200.         xdr_long(xdrs, (long *) &argp->ra_count) &&
  201.         xdr_long(xdrs, (long *) &argp->ra_totcount))
  202.         return(TRUE);
  203.  
  204.     return(FALSE);
  205. }
  206.  
  207. bool_t
  208. xdr_rnmargs(xdrs, argp)
  209. register struct nfsrnmargs *argp;
  210. register XDR *xdrs;
  211. {
  212.     if (xdr_diropargs(xdrs, &argp->rna_from) &&
  213.         xdr_diropargs(xdrs, &argp->rna_to))
  214.         return(TRUE);
  215.  
  216.     return(FALSE);
  217. }
  218.  
  219. bool_t
  220. xdr_saargs(xdrs, argp)
  221. register struct nfssaargs *argp;
  222. register XDR *xdrs;
  223. {
  224.     if (xdr_fhandle(xdrs, &argp->saa_fh) &&
  225.         xdr_sattr(xdrs, &argp->saa_sa))
  226.         return(TRUE);
  227.  
  228.     return(FALSE);
  229. }
  230.  
  231. bool_t
  232. xdr_sattr(xdrs, argp)
  233. register struct nfssattr *argp;
  234. register XDR *xdrs;
  235. {
  236.     if (xdr_u_long(xdrs, &argp->sa_mode) &&
  237.         xdr_u_long(xdrs, &argp->sa_uid) &&
  238.         xdr_u_long(xdrs, &argp->sa_gid) &&
  239.         xdr_u_long(xdrs, &argp->sa_size) &&
  240.         xdr_timeval(xdrs, &argp->sa_atime) &&
  241.         xdr_timeval(xdrs, &argp->sa_mtime))
  242.         return(TRUE);
  243.  
  244.     return(FALSE);
  245. }
  246.  
  247. bool_t
  248. xdr_slargs(xdrs, argp)
  249. register struct nfsslargs *argp;
  250. register XDR *xdrs;
  251. {
  252.     if (xdr_diropargs(xdrs, &argp->sla_from) &&
  253.         xdr_string(xdrs, &argp->sla_tnm, (u_int) MAXPATHLEN) &&
  254.         xdr_sattr(xdrs, &argp->sla_sa)) {
  255.         free(argp->sla_tnm);
  256.         return(TRUE);
  257.     }
  258.  
  259.     return(FALSE);
  260. }
  261.  
  262. bool_t
  263. xdr_timeval(xdrs, argp)
  264. register struct timeval *argp;
  265. register XDR *xdrs;
  266. {
  267.     if (xdr_long(xdrs, &argp->tv_sec) &&
  268.         xdr_long(xdrs, &argp->tv_usec))
  269.         return(TRUE);
  270.  
  271.     return(FALSE);
  272. }
  273.  
  274. bool_t
  275. xdr_writeargs(xdrs, argp)
  276. register struct nfswriteargs *argp;
  277. register XDR *xdrs;
  278. {
  279.     if (xdr_fhandle(xdrs, &argp->wa_fhandle) &&
  280.         xdr_long(xdrs, (long *) &argp->wa_begoff) &&
  281.         xdr_long(xdrs, (long *) &argp->wa_offset) &&
  282.         xdr_long(xdrs, (long *) &argp->wa_totcount))
  283.         return(TRUE);
  284.  
  285.     return(FALSE);
  286. }
  287. @
  288.  
  289.  
  290. 3.4
  291. log
  292. @Corrected Jeff's address.
  293. @
  294. text
  295. @d2 1
  296. a2 1
  297. static char *RCSid = "$Header: /home/harbor/davy/system/nfswatch/RCS/xdr.c,v 3.3 1993/01/15 19:33:39 davy Exp davy $";
  298. d18 3
  299. @
  300.  
  301.  
  302. 3.3
  303. log
  304. @Miscellaneous cleanups.
  305. @
  306. text
  307. @d2 1
  308. a2 1
  309. static char *RCSid = "$Header: /home/harbor/davy/system/nfswatch/RCS/xdr.c,v 3.2 1993/01/15 15:43:36 davy Exp davy $";
  310. d13 1
  311. a13 1
  312.  * 1285 Electrical Engineering Building        100 Hamilton Avenue
  313. d18 3
  314. @
  315.  
  316.  
  317. 3.2
  318. log
  319. @Assorted changes for porting to Solaris 2.x/SVR4.
  320. @
  321. text
  322. @d2 1
  323. a2 1
  324. static char *RCSid = "$Header: /home/harbor/davy/system/nfswatch/RCS/xdr.c,v 3.1 1993/01/13 20:18:17 davy Exp davy $";
  325. d5 2
  326. d11 5
  327. a15 5
  328.  * SRI International                Digital Equipment Corporation
  329.  * 333 Ravenswood Avenue            Western Research Laboratory
  330.  * Menlo Park, CA 94025                100 Hamilton Avenue
  331.  * davy@@erg.sri.com                Palo Alto, CA 94301
  332.  *                        mogul@@decwrl.dec.com
  333. d18 3
  334. a34 2
  335. #include "os.h"
  336.  
  337. d53 2
  338. a54 1
  339. #endif /* sun */
  340. d58 2
  341. a59 1
  342. #endif /* ultrix */
  343. d63 1
  344. a63 3
  345. #else
  346. #include <nfs/nfs.h>
  347. #endif /* sgi */
  348. @
  349.  
  350.  
  351. 3.1
  352. log
  353. @Put in OS-specific define scheme, and merged in Tim Hudson's code for
  354. SGI systems (as yet untested).
  355. @
  356. text
  357. @d2 1
  358. a2 1
  359. static char *RCSid = "$Header: /home/harbor/davy/system/nfswatch/RCS/xdr.c,v 3.0 1991/01/23 08:23:39 davy Exp davy $";
  360. d16 4
  361. d30 2
  362. d34 3
  363. a61 1
  364. #include "os.h"
  365. @
  366.  
  367.  
  368. 3.0
  369. log
  370. @NFSWATCH Version 3.0.
  371. @
  372. text
  373. @d2 1
  374. a2 1
  375. static char *RCSid = "$Header: /tmp_mnt/net/sparky.a/davy/system/nfswatch/RCS/xdr.c,v 1.2 90/08/17 15:47:53 davy Exp Locker: davy $";
  376. d15 4
  377. a18 1
  378.  * $Log:    xdr.c,v $
  379. d46 4
  380. d51 1
  381. d53 1
  382. @
  383.  
  384.  
  385. 1.2
  386. log
  387. @NFSWATCH Version 2.0.
  388. @
  389. text
  390. @d2 1
  391. a2 1
  392. static char *RCSid = "$Header: /tmp_mnt/net/sparky.a/davy/system/nfswatch/RCS/xdr.c,v 1.1 88/11/29 11:21:08 davy Released Locker: davy $";
  393. d8 6
  394. a13 5
  395.  * David A. Curry
  396.  * SRI International
  397.  * 333 Ravenswood Avenue
  398.  * Menlo Park, CA 94025
  399.  * davy@@itstd.sri.com
  400. d16 3
  401. @
  402.  
  403.  
  404. 1.1
  405. log
  406. @NFSWATCH Release 1.0
  407. @
  408. text
  409. @d2 1
  410. a2 1
  411. static char *RCSid = "$Header$";
  412. d9 4
  413. a12 5
  414.  * Research Institute for Advanced Computer Science
  415.  * Mail Stop 230-5
  416.  * NASA Ames Research Center
  417.  * Moffett Field, CA 94035
  418.  * davy@@riacs.edu
  419. d14 4
  420. a17 1
  421.  * $Log$
  422. d31 2
  423. d34 5
  424. d61 2
  425. a62 1
  426.         xdr_string(xdrs, &argp->da_name, NFS_MAXNAMLEN))
  427. d64 1
  428. d166 2
  429. a167 1
  430.         xdr_sattr(xdrs, &argp->sla_sa))
  431. d169 1
  432. @
  433.